//
//  ViewController.m
//  03-UIResponder
//
//  Created by mafeng on 16/7/18.
//  Copyright © 2016年 mafeng. All rights reserved.
//

#import "ViewController.h"
#import "TouchView.h"
@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
    TouchView *touchView = [[TouchView alloc] initWithFrame:CGRectMake(100, 100, 200, 200)];
    touchView.backgroundColor = [UIColor blueColor];
    [self.view addSubview:touchView];
    
    // 1. 响应者链
    // 触摸touch时
    // 检测顺序: 硬件-> Appdelegate - > UIApplication -> UIWindow -> UIViewController -> self.view -> TouchView
    // 响应顺序: TouchView -> self.view -> UIViewController -> UIWindow -> UIApplication -> Appdelegate -> null
    
    // 如果所有的响应者都无法响应该事件, 则这个时间会被舍弃
    // 两种检测响应者的方法
    // 1. Category 实现 touchBegin 的方法
    // 2. nextResponder
    
    // 例 :
    // 1. 响应者不要出边界, 出边界的响应者不响应
    // 判断当前的点, 在谁的范围内(bounds)
    BOOL isInside = [touchView pointInside:CGPointMake(0, 0) withEvent:nil];
    UIButton *button = [UIButton buttonWithType:UIButtonTypeSystem];
    NSLog(@"%@", isInside ? @"yes" : @"no");
    button.frame = CGRectMake(0, 0, 200, 50);
    button.backgroundColor = [UIColor cyanColor];
    [touchView addSubview:button];
    [button addTarget:self action:@selector(buttonClick:) forControlEvents:UIControlEventTouchUpInside];
    //  UIButton的点击方法的实现
    // button的点击效果, 通过UIResponder对应的方法实现的
    // 3. pointInside重写, 失去响应能力(return NO)
    // label 和 UIimageview 的userInteractiveEnable默认是关闭的
}
- (void)buttonClick:(UIButton *)button {
    NSLog(@"button =====%@", button);
}
- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event {
    [super touchesBegan:touches withEvent:event];
   // NSLog(@"%@----%s", [self class], __FUNCTION__);
}
- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

@end
